package cn.zqy.demo2.day09.OutputStream;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;

/*
    一次写多个字节的方法:
        - public void write(byte[] b)：将 b.length字节从指定的字节数组写入此输出流。
        - public void write(byte[] b, int off, int len) ：从指定的字节数组写入 len字节，从偏移量 off开始输出到此输出流。
 */
public class Demo02OutputStream {
    public static void main(String[] args) throws IOException {

        //创建FileOutputStream对象,构造方法中绑定要写入数据的目的地
        FileOutputStream fos = new FileOutputStream(new File("src\\cn\\zqy\\demo2\\day09\\output\\b.txt"));

        //调用FileOutputStream对象中的方法write,把数据写入到文件中
        //在文件中显示100,有3个字节
        fos.write(49); // 1
        fos.write(48); // 0
        fos.write(48); // 0

        /*
            public void write(byte[] b)：将 b.length字节从指定的字节数组写入此输出流。
            一次写多个字节:
                如果写的第一个字节是正数(0-127),那么显示的时候会查询ASCII表
                如果写的第一个字节是负数,那第一个字节会和第二个字节,两个字节组成一个中文显示,查询系统默认码表(GBK)
         */
        byte[] bytes = new byte[]{65, 66, 67, 68, 69, 70, 71, 72};   // ABCDEFGH
        //byte[] bytes = new byte[]{-65,-66, -67, 68, 69, -70, 71, 72};  //一坨中文乱码，这是因为127开外会查询系统默认编码表

        fos.write(bytes);
        byte[] bytes1 = "你好后端开发".getBytes();
        fos.write(bytes1);

        fos.close();
    }
}
